package com.lfec.dividiraconta;

import java.util.ArrayList;
import java.util.List;

public class DadosHolder {

	private List<Item> itemList;
	private List<Pessoa> pessoaList;
	
	private static DadosHolder instance;
	
	public static DadosHolder getInstance(){
		if (instance == null) {
			instance = new DadosHolder();
		}
		return instance;
	}
	
	public List<Item> getItemList() {
		return itemList;
	}

	public List<Pessoa> getPessoaList() {
		return pessoaList;
	}

	private DadosHolder(){
		itemList = new ArrayList<Item>();
		pessoaList = new ArrayList<Pessoa>();
	}
	
	public void addPessoa(Pessoa p){
		pessoaList.add(p);
	}

	public void relate(Item item, String text, boolean checked) {
		Pessoa p = getPessoaFromName(text);
		if (checked) {
			p.addItem(item);
			item.addPessoa(p);
		} else {
			p.removeItem(item);
			item.removePessoa(p);
		}
		
	}

	public Pessoa getPessoaFromName(String text) {
		Pessoa retorno = null;
		for (Pessoa pessoa : pessoaList) {
			if (pessoa.getNome().equalsIgnoreCase(text)) {
				retorno = pessoa;
				break;
			}
		}
		
		return retorno;
	}

	public void clear() {
		itemList.clear();
		pessoaList.clear();
	}

	public void addItem(Item item) {
		itemList.add(item);
	}
}
